package cn.z2huo.knowledge.basic.keyword.interfacekeyword;

interface I1 {
    void f();
}

interface I2 {
    int f(int i);
}

interface I3 {
    int f();
}

class A {
    public int f() {
        return 1;
    }
}

class B implements I1, I2 {
    @Override
    public void f() {

    }

    @Override
    public int f(int i) {
        return 0;
    }
}

class C extends A implements I2 {
    @Override
    public int f(int i) {
        return 1;
    }
}

class D extends A implements I3 {
    @Override
    public int f() {
        return 2;
    }
}
// 继承 A 实现 I3，可以不用重写方法，因为 A 中已有 f() 方法
class D2 extends A implements I3 {
}

// A 和 I1 中的两个方法，方法名称相同，方法参数列表都为空，无法重载
//class E extends A implements I1{
//}
// I1 和 I3 中的两个方法，方法名称相同，方法参数列表都为空，无法重载
//interface I4 extends I1,I3 {
//}

public class NameFight {

}
